interface IRippleOptions {
  color: string;
  initialOpacity: number;
  finalOpacity: number;
  duration: number;
  easing: string;
  delay: number;
  disabled: boolean;
}

interface IRipplePluginOptions extends IRippleOptions {
  directive: string;
}

interface IRippleOptionWithBinding {
  value: IRippleOptions;
}

const DEFAULT_PLUGIN_OPTIONS: IRipplePluginOptions = {
  directive: 'ripple',
  color: 'currentColor',
  initialOpacity: 0.2,
  finalOpacity: 0.1,
  duration: 400,
  easing: 'ease-out',
  delay: 75,
  disabled: false
};

export {
  DEFAULT_PLUGIN_OPTIONS,
  IRipplePluginOptions,
  IRippleOptions,
  IRippleOptionWithBinding
};
